package com.demo.service.hmi.impl;

import com.demo.common.constant.type.HmiCatalogTypeConstant;
import com.demo.dao.common.entity.CatalogItem;
import com.demo.dao.hmi.mapper.HmiCatalogMapper;
import com.demo.service.hmi.HmiCatalogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public class HmiCatalogServiceImpl implements HmiCatalogService {
    @Autowired
    private HmiCatalogMapper catalogMapper;

    //******************************************************************
    // 字典分类表
    //******************************************************************
    //查询数据类型列表
    @Override
    public List<CatalogItem> getPropsDataTypeCatalogList(){
        return catalogMapper.getDictionaryCatalogListByTypeName(HmiCatalogTypeConstant.PROPS_DATA_TYPE_CODE);
    }

    //查询输入表单类型列表
    @Override
    public List<CatalogItem> getPropsFormTypeCatalogList() {
        return catalogMapper.getDictionaryCatalogListByTypeName(HmiCatalogTypeConstant.PROPS_FORM_TYPE_CODE);
    }

    //查询变量类型列表
    @Override
    public List<CatalogItem> getVarTypeCatalogList(){
        return catalogMapper.getDictionaryCatalogListByTypeName(HmiCatalogTypeConstant.VAR_TYPE_CODE);
    }

    //查询加密算法列表
    @Override
    public List<CatalogItem> getEncryptionTypeCatalogList() {
        return catalogMapper.getDictionaryCatalogListByTypeName(HmiCatalogTypeConstant.ENCRYPTION_TYPE_CODE);
    }

    //查询通信协议列表
    @Override
    public List<CatalogItem> getProtocolTypeCatalogList() {
        return catalogMapper.getDictionaryCatalogListByTypeName(HmiCatalogTypeConstant.PROTOCOL_TYPE_CODE);
    }
    //查询数值单位列表
    public List<CatalogItem> getUnitTypeCatalogList() {
        return catalogMapper.getDictionaryCatalogListByTypeName(HmiCatalogTypeConstant.UNIT_TYPE_CODE);
    }

    //******************************************************************
    // 普通表
    //******************************************************************
    //查询组件类型列表
    @Override
    public List<CatalogItem> getComponentTypeCatalogList(){
        return catalogMapper.getComponentTypeCatalogList();
    }

    //查询组件列表
    @Override
    public List<CatalogItem> getComponentCatalogList(){
        return catalogMapper.getComponentCatalogList();
    }

    //查询设备类型列表
    @Override
    public List<CatalogItem> getDeviceTypeCatalogList(){
        return catalogMapper.getDeviceTypeCatalogList();
    }

    //查询数据字典分类列表
    @Override
    public List<CatalogItem> getDictionaryTypeCatalogList() {
        return catalogMapper.getDictionaryTypeCatalogList();
    }

    //根据条件获取组件列表
    @Override
    public List<CatalogItem> getComponentCatalogListByTypeId(Long typeId) {
        return catalogMapper.getComponentCatalogListByTypeId(typeId);
    }
}
